package com.ruge.test.基础.数组;

import org.apache.commons.lang3.ArrayUtils;
import org.junit.Test;

import java.util.Arrays;
import java.util.Collections;

/**
 * 爱丽丝、如歌  创建于 2018/8/27 20:15
 * 说明:  TODO
 */
public class 一维数组常见面试题 {
	/**
	 * 第一题
	 * http://www.cnblogs.com/QAZLIU/p/5505310.html
	 * 定义一个int型的一维数组，包含10个元素，分别赋一些随机整数，然后求出所有元素的最大值，
	 * 最小值，平均值，和值，并输出出来
	 */
	@Test
	public void test1() {
		int[] arr =new int  [10];
		arr[0] = (int) (1 + Math.random() * (10 - 1 + 1));
		arr[1] = (int) (1 + Math.random() * (10 - 1 + 1));
		arr[2] = (int) (1 + Math.random() * (10 - 1 + 1));
		arr[3] = (int) (1 + Math.random() * (10 - 1 + 1));
		arr[4] = (int) (1 + Math.random() * (10 - 1 + 1));
		arr[5] = (int) (1 + Math.random() * (10 - 1 + 1));
		arr[6] = (int) (1 + Math.random() * (10 - 1 + 1));
		arr[7] = (int) (1 + Math.random() * (10 - 1 + 1));
		arr[8] = (int) (1 + Math.random() * (10 - 1 + 1));
		arr[9] = (int) (1 + Math.random() * (10 - 1 + 1));
		/**
		 *  获取最大值
		 */
		int max = 0;
		for (int i = 0; i <arr.length ; i++) {
			System.out.print(arr[i]+" ");
			if(arr[i]>=max){
				max = arr[i];
			}
		}
		System.out.println("数组最大值是"+max);
		/**
		 * 获取数组最小值
		 */
		int min = Arrays.stream(arr).min().getAsInt();
		System.out.println("数组最小值是"+min);
		min = Collections.min(Arrays.asList(ArrayUtils.toObject(arr)));
		System.out.println("数组最小值是"+min);
		Arrays.sort(arr);
		System.out.println("数组最小值是"+arr[0]);
		int sum = 0;
		int avg = 0;
		for (int i = 0; i <arr.length ; i++) {
			sum+=arr[i];
		}
		avg = sum/arr.length;
		System.out.println("数组的和值是"+sum);
		System.out.println("数组的平均值是"+avg);

	}
	/**
	 * 第二题
	 * http://www.cnblogs.com/QAZLIU/p/5505310.html
	 * 定义一个int型的一维数组，包含10个元素，分别赋值为1~10， 然后将数组中的元素都向前移一个位置，
	 * 即，a[0]=a[1],a[1]=a[2],…最后一个元素的值是原来第一个元素的值，然后输出这个数组
	 */

	/**
	 * 第三题
	 * http://www.cnblogs.com/QAZLIU/p/5505310.html
	 * 编写程序，将一个数组中的元素倒排过来。例如原数组为1，2，3，4，5；
	 * 则倒排后数组中的值为5，4，3，2，1。
	 */
}
